package com.jiangxiaofei.citycloud.mvp;

import android.content.Context;

import com.jiangxiaofei.citycloud.bean.BannerBean;
import com.jiangxiaofei.citycloud.httpUtil.BaseView;
import com.jiangxiaofei.citycloud.httpUtil.OnLoadDataIm;
import com.jiangxiaofei.citycloud.param.AddRealidParam;
import com.jiangxiaofei.citycloud.param.PhoneCodeParam;
import com.jiangxiaofei.citycloud.param.UpLoadPhotoParam;
import com.jiangxiaofei.citycloud.param.UserInfoParam;
import com.jiangxiaofei.citycloud.param.UserRegistParam;
import com.jiangxiaofei.citycloud.param.UserStateParam;

import java.io.File;
import java.util.List;

/**
 * Created by JiangXFei on 2017/8/23.
 */

public class MainConstant {
    /**
     * 通用模块   上传图片
     */
    public interface UpLoadPhotoModel {
        void uploadPhoto(Context mContext, File file, OnLoadDataIm callBack);
    }

    public interface UpLoadPhotoView extends BaseView {
        UpLoadPhotoParam uploadPhoto();

        void uploadData(String urls);
    }

    public interface UploadPhotoPersenter {
        void uploadData();
    }

    /**
     * 上传真实信息
     */
    public interface AddUserRealInfoModel {
        void addUserRealInfo(Context mContext, AddRealidParam realidParam, OnLoadDataIm callback);
    }

    public interface AddUserRealInfoView extends BaseView {
        AddRealidParam addUserRealInfo();
    }

    public interface AdduserRealInfoPersenter {
        void addUserRealInfo();
    }

    /**
     * 获取用户真实信息
     */
    public interface GetRealUserInfoModel {
        void getRealUserInfo(Context mContext, int userId, OnLoadDataIm callback);
    }

    public interface GetRealUserInfoView extends BaseView {
        int getRealUserInfo();

        void setUserRealInfo(Object o);
    }

    public interface GetRealUserInfoPersenter {
        void getRealUserInfo();
    }

    /**
     * 用户注册
     */
    public interface UserRegistModel {
        void registUser(Context mContext, UserRegistParam param, OnLoadDataIm callback);
    }

    public interface UserRegistView extends BaseView {
        void onRegistSuccess(Object o);

        UserRegistParam getRegistParam();
    }

    public interface UserRegistPersenter {
        void onRegistUser();
    }

    /**
     * 验证手机号是否重复
     */


    public interface PhoneIsRepeatModel {
        void phoneRepeat(Context mContext, String phoneNum, OnLoadDataIm callback);
    }

    public interface PhoneIsRepeatView extends BaseView {
        void repeatPhone(Object o);

        String getPhoneNum();
    }

    public interface PhoneIsRepeatPersenter {
        void repeatIsPhone();
    }

    /**
     * 用户登陆
     */
    public interface UserLoginModel {
        void userLogin(Context mContext, UserInfoParam param, OnLoadDataIm callback);
    }

    public interface UserLoginView extends BaseView {
        UserInfoParam getUserLoginParam();

        void onLoginSuccess(Object o);
    }

    public interface UserLoginPersenter {
        void onLoginUser();
    }

    /**
     * 获取banner
     */
    public interface GetBannerModel {
        void getBanner(Context mContext, int id, OnLoadDataIm callback);
    }

    public interface GetBannerView extends BaseView {
        int getBannerParam();

        void bannerSuccess(List<BannerBean> bannerBeans);
    }

    public interface GetBannerPersenter {
        void getBanner();
    }

    /**
     * 获取手机验证码
     */
    public interface GetPhoneCodeModel {
        void getPhoneCode(Context mContext, PhoneCodeParam param, OnLoadDataIm callback);
    }

    public interface GetPhoneCodeView extends BaseView {
        PhoneCodeParam getCodePhoneNum();

        void getPhoneCodeMsg(String msg);
    }

    public interface GetPhoneCodePersenter {
        void getPhoneCode();
    }

    /**
     * 修改密码
     */
    public interface UpdatePwdModel {
        void updatePwd(Context mContext, UserStateParam param, OnLoadDataIm callback);
    }

    public interface UpdatePwdView extends BaseView {
        UserStateParam getUpdatePwdParam();

        void updatePwdSuccess(String msg);
    }

    public interface UpdatePwdPersenter {
        void updatePwd();
    }

    /**
     * 修改手机号
     */
    public interface UpdatePhoneModel {
        void updatePhone(Context mContext, UserStateParam param, OnLoadDataIm callback);
    }

    public interface UpdatePhoneView extends BaseView {
        UserStateParam getUpdatePhoneParam();

        void updatePhoneSuccess(String msg);
    }

    public interface UpdatePhonePersenter {
        void updatePhone();
    }

    /**
     * 修改用户名
     */
    public interface UpdateUserNameModel {
        void updateUserNmae(Context mContext, UserStateParam param, OnLoadDataIm callback);
    }

    public interface UpdateUserNameView extends BaseView {
        UserStateParam getUpdateUserNameParam();

        void updateUserNameSuccess(String msg);
    }

    public interface UpdateUserNamePersenter {
        void updateUserName();
    }


    /**
     * 验证用户名是否重复
     */
    public interface UserRepeatNameModel {
        void RepeatName(Context mContext, String name, OnLoadDataIm callback);
    }

    public interface UserRepeatNameView extends BaseView {
        String getUserName();

        void repeatName(String msg);
    }

    public interface UserRepeatNamePersenter {
        void repeatName();
    }

    /**
     * 找回密码
     */
    public interface FindUserPwdModel {
        void findPwd(Context mContext, UserStateParam param, OnLoadDataIm callback);
    }

    public interface FindUserPwdView extends BaseView {
        UserStateParam findPwdParam();

        void findPwdSuccess(String msg);
    }

    public interface FindUserPwdPersenter {
        void findPwd();
    }
}
